const gwc = require('../db/gouwuche')
const sysp = require('../db/syspss')

const dindan = require('../db/dindan')

module.exports = {
    zhifucg(req,res){

        // 获取数据
        let {ids, mode, totalprice, userid} = req.body

        ids = ids.split(',')

        // 到购物车里找所有数据
        gwc.find({_id:{$in:ids}},(err,docs)=>{
            if(err){
                throw new Error(err)
            }

            // 获取所有商品
            let shuju = docs.map(item=>item.menuid)

            // 通过id查找所有商品
            sysp.find({_id:{$in:shuju}},(err,docs)=>{
                if(err){
                    throw new Error(err)
                }

                // 获取第一个商品名称
                let menuname =docs[0].name
                // 生成订单号
                let orderno = +new Date()+Math.floor(Math.random()*899999)+100000
                // 定义订单状态
                let status = '已付款'
                // 取餐码
                let aa = +new Date()  
                let dd = aa/1000/60/60/24
                let start = Math.floor(dd)*1000*60*60*24
                let end = Math.ceil(dd)*1000*60*60*24

                // 查询订单表
                dindan.find({time:{$gt:start,$lt:end}},(err,docs)=>{
                    if(err){
                        throw new Error(err)
                    }

                    // 判断查询出来的数量
                    if(docs.length){
                        // 取餐码数量+1
                        code = docs.length+1
                        // 不够4位数的前面加0
                        if(docs<10){
                            code = '000'+code
                        }else if(code < 100){
                            code = '00'+code
                        } else if(code<1000){
                            code = '0'+code
                        }
                    }else{
                        // 如果今天还没有数据，则取餐码为1
                        code = '0001'
                    }

                    // 将数据添加到订单表
                    dindan.insertMany({
                        orderno,
                        mode,
                        menuname,
                        code,
                        totalprice,
                        status,
                        userid
                    },(err,docs)=>{
                        if(err){
                            throw new Error(err)
                        }
                        // 删除购物车表的数据
                        gwc.deleteMany({_id:{$in:ids}},(err,docs)=>{
                            if(err){
                                throw new Error(err)
                            }
                            res.json({
                                error_code:0,
                                msg:'支付成功'
                            })
                        })
                    })


                })

            })
        })
    },

    dindans(req,res){
        // 获取用户id
        let{trr} = req.params

        dindan.find({trr},(err,docs)=>{
            if(err){
                throw new Error(err)
            }

            res.json({
                error_code:0,
                msg:'获取订单成功',
                data:docs
            })
        })
        res.send('获取所有的订单')

    }
}


